import api from '@/api'
import { useDictStore } from '@/store'

export function useDict(...args) {
  const res = ref({})
  return (() => {
    args.forEach((dictCode) => {
      res.value[dictCode] = []
      // dictCode 字典编码
      const dicts = useDictStore().getDict(dictCode)
      // 如果dicts有值，说明仓库中已经存储，直接使用
      if (dicts) {
        res.value[dictCode] = dicts
      }
      else {
        // 如果无值，代表仓库中还未存储，调用获取字典标签的接口，参数dictCode代表要查询的字典名称
        api.queryDictDataByCode({ code: dictCode }).then((resp) => {
          res.value[dictCode] = resp.data.map(item => ({ label: item.label, value: item.value }))
          useDictStore().setDict(dictCode, res.value[dictCode])
        })
      }
    })
    return toRefs(res.value)
  })()
}

export function setupDictApi() {
  window.$dict = useDict
}
